package main

import (
	"fmt"
	"net/http"
	"path"
	"regexp"
	"strings"
)

// 检查字符串文件路径https://www.quxian.gov.cn/uploadfile/1/Attachment/1c812ec11ac.xlsx中的文件类型

const errorType, htmlType, docType = "error", "html", "doc"

func checkFileType(fileName string) string {
	//todo 根据后缀判断，例如https://www.quxian.gov.cn/uploadfile/1/Attachment/1c812ec10ac.xlsx得到.xlsx,
	// https://www.quxian.gov.cn/xxgk-show-23674.html得到.html
	// 查找最后一个 . 的位置
	// 从 URL 中提取文件名
	baseName := path.Base(fileName)
	// 查找最后一个 . 的位置
	lastDotIndex := strings.LastIndex(baseName, ".")
	if lastDotIndex == -1 {
		// 如果没有找到 .，说明没有文件后缀，返回空字符串
		return errorType
	} else {
		fileType := baseName[lastDotIndex:]
		if fileType == ".html" {
			return htmlType
		} else {
			return docType
		}
	}
}
func removeProtocol(input string) string {
	// 定义正则表达式，用于匹配 http:// 或 https://
	regex := `^(http|https)://`
	re := regexp.MustCompile(regex)
	// 直接使用 ReplaceAllString 方法将匹配到的内容替换为空字符串
	return re.ReplaceAllString(input, "")
}

// 发送一个网络请求，当返回404时，返回true，否则返回false
func validateRequest(url string) string {
	var reqProcess = ""
	client := &http.Client{}
	req, _ := http.NewRequest("GET", url, nil)

	resp, _ := client.Do(req)
	defer resp.Body.Close()

	if resp.StatusCode == 404 {
		//保存历史记录
		if url != "" {
			history := Record{
				Url: url,
			}
			DB.Create(&history)
		}
		reqProcess += "✅" + url + ":" + fmt.Sprintf("已删除：%d\n", resp.StatusCode)
	} else {
		reqProcess += "❌" + url + ":" + fmt.Sprintf("未删除：%d\n", resp.StatusCode)
	}
	return reqProcess
}
